The Case for Migratory Priority Inheritance in Linux: Bounded Priority Inversions on Multiprocessors

نویسندگان

  • Björn B. Brandenburg
  • Andrea Bastoni
چکیده

Linux’s real-time performance crucially depends on priority inheritance because—on uniprocessors—it limits the maximum duration of priority inversion to one critical section per lock while ensuring that tasks remain fully preemptable even when holding locks. Unfortunately, priority inheritance is ineffective on multiprocessors under non-global scheduling (i.e., if some tasks may not execute on every processor) in the sense that it does not prevent unbounded priority inversion in all cases. In fact, as shown in the paper, in a multiprocessor system with priority inheritance, it is possible for a task to suffer from priority inversion as long as in a uniprocessor system without priority inheritance. There is thus currently no predictable locking mechanism suitable for non-global scheduling available in Linux, short of resorting to non-preemptive sections or other latency-increasing mechanisms such as priority boosting. As multicore platforms are becoming more widespread in the embedded domain, this “predictability gap” on multiprocessors limits Linux’s viability as a real-time platform. In this position paper, it is argued that a simple tweak to the priority inheritance algorithm will restore its efficacy on multiprocessors, without breaking POSIX compliance, increasing scheduling latency, or requiring large changes to Linux’s scheduling and locking code. In a nutshell, under the proposed migratory priority inheritance mechanism, inheritance is applied not only to scheduling priorities, but also to processor affinity masks. The need for migratory priority inheritance and its benefits are explained in detail with a sequence of simple examples. Additionally, a prototype implementation within the Linux kernel is described and potential challenges and simplifications are discussed.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Priority Inheritance Spin Locks for Multiprocessor Real-Time Systems

When a real-time system is realized on a shared-memory multiprocessor, priority-ordered spin locks are often required to reduce priority inversions. However, simple priority-ordered spin locks can cause uncontrolled priority inversions when they are used for nested spin locks. This paper points out the problem of uncontrolled priority inversions in the context of spin locks and proposes priorit...

متن کامل

Distributed Priority Inheritance for Real-Time and Embedded Systems

We study the problem of priority inversion in distributed real-time and embedded systems and propose a solution based on a distributed version of the priority inheritance protocol (PIP). Previous approaches to priority inversions in distributed systems use variations of the priority ceiling protocol (PCP), originally designed for centralized systems as a modification of PIP that also prevents d...

متن کامل

Resolving priority inversions in composable conveyor systems

The well known problem of priority inversions that occurs in classical real-time systems also manifests in decentralized cyber-physical systems. Using a specific example of composable conveyor systems, we show how priority inversions hinder the transport of entities through the conveyor systems. We present a novel adaptation of the classical priority inheritance protocol for resolving these cyb...

متن کامل

The Limitations of Fixed-Priority Interrupt Handling in PREEMPT RT and Alternative Approaches

Threaded interrupt handling is a common technique used in real-time operating systems since it increases system responsiveness and reduces priority inversions. The PREEMPT RT Linux kernel patch introduces aggressive threaded interrupt handling into the Linux kernel. However, under PREEMPT RT, interrupt handling threads must be assigned a single fixed scheduling priority. This can become a signi...

متن کامل

Reservation based protocol for resolving priority inversions in composable conveyor systems

A reservation based protocol for resolving priority inversions in decentralized realtime systems that are useful in the domain of advanced manufacturing is presented. The problem of priority inversions is well-known in the real-time systems literature. When there is prioritized access to shared resources, it is natural consequence for a low-priority task to be serviced before a high-priority ta...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012